home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / biztalk_flaws.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  86 lines

  1. #
  2. # (C) Tenable Network Security
  3. #
  4. #
  5. # Ref:
  6. #  http://www.microsoft.com/technet/security/bulletin/MS03-016.mspx
  7.  
  8.  
  9. if (description)
  10. {
  11.  script_id(11638);
  12.  script_bugtraq_id(7469, 7470);
  13.  script_cve_id("CAN-2003-0117", "CAN-2003-0118");
  14.  script_version ("$Revision: 1.7 $");
  15.  
  16.  script_name(english:"biztalk server flaws");
  17.  desc["english"] = "
  18. The remote host seems to be running Microsoft BizTalk server.
  19.  
  20. There are two flaws in this software which may allow an attacker
  21. to issue an SQL insertion attack or to execute arbitrary code on
  22. the remote host.
  23.  
  24. *** Nessus solely relied on the presence of Biztalk to issue
  25. *** this alert, so this might be a false positive
  26.  
  27. Solution : Make sure you installed the relevant Microsoft Patches available at
  28. http://www.microsoft.com/technet/security/bulletin/MS03-016.mspx
  29.  
  30. Risk factor : High";
  31.  
  32.  
  33.  
  34.  script_description(english:desc["english"]);
  35.  script_summary(english:"Determines if BizTalk is installed");
  36.  script_category(ACT_GATHER_INFO);
  37.  script_family(english:"CGI abuses", francais:"Abus de CGI");
  38.  script_copyright(english:"This script is Copyright (C) 2003 Tenable Network Security");
  39.  script_dependencie("find_service.nes", "no404.nasl");
  40.  script_require_ports("Services/www", 80);
  41.  exit(0);
  42. }
  43.  
  44. include("http_func.inc");
  45. include("http_keepalive.inc");
  46.  
  47.  
  48.  
  49. port = get_http_port(default:80);
  50.  
  51. if(!get_port_state(port))exit(0);
  52.  
  53. dirs = get_kb_list(string("www/", port, "/content/directories"));
  54. if(isnull(dirs))dirs = make_list();
  55.  
  56. dirs = make_list(dirs, cgi_dirs());
  57.     
  58. foreach d (dirs)
  59. {
  60.  req = http_post(item:d+"/biztalkhttpreceive.dll", port:port);
  61.  idx = stridx(req, string("\r\n\r\n"));
  62.  req = insstr(req, string("\r\nContent-Length: 6\r\n\r\nNESSUS"), idx);
  63.  
  64.  
  65.  res = http_keepalive_send_recv(port:port, data:req);
  66.  
  67.  if( res == NULL ) exit(0);
  68.  
  69.  #
  70.  # We might do multiple retries as the CGI sometimes stalls
  71.  # when it has received a bad request first.
  72.  # 
  73.  if("HTTP/1.1 100 Continue" >< res ){ 
  74.      eol = strstr(res, string("\r\n\r\n"));
  75.     end = 1;
  76.     if(eol && strlen(eol) <= 4)end = 3;
  77.      for(i=0;i<end;i++)
  78.     {
  79.      if (  "HTTP/1.1 500 Internal Server Error" >< res )
  80.         { security_hole(port); exit(0); }
  81.     res = http_keepalive_send_recv(port:port, data:req);    
  82.     if(i + 1 < end) sleep(1);    
  83.     }
  84.     }
  85. }
  86.